home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 013 / disklib.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  3.1 KB  |  44 lines

  1. 10  'Written by Kurt Riegel, Arlington VA (703-522-5427) in June 1983
  2. 20  'Diskette Librarian, DOS 2.0 very simple but useful.
  3. 30  'Written for IBM-PC, monochrome monitor, DOS 2.0 BASICA, one disk drive.
  4. 40  'Suggested Filename is DISKLIB.BAS
  5. 50  '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  6. 60  KEY OFF:CLS:DEFINT I-N:MAX=700:DEFSTR A-H:DIM NAM$(MAX),DSKNAM(99),SPACEDSK(99):DAT=DATE$
  7. 70  LOCATE 1,8:COLOR 0,7:PRINT" Welcome to Kurt Riegel's (703-522-5427) DOS 2.0 Disk Librarian ":COLOR 2:PRINT:PRINT TAB(26)"Version ==> 830619 <== Date":PRINT
  8. 80  PRINT:PRINT"This program will ask you for diskette names (4 characters max length), read    them, sort their files alphabetically, and list files and disk names compactly"
  9. 90  PRINT"on screen or printer. "MAX;"files maximum  (changeable by setting MAX to":PRINT"another number in the first executable statement).":PRINT
  10. 100  PRINT:PRINT"Wait for the tweet to change disks.  Don't be disturbed if there's a 2 minute   hangup for system garbage collection, which sometimes occurs.":PRINT
  11. 110  PRINT"This version handles only the root directory files; treed directories may followin a later version.":PRINT:PRINT
  12. 120  '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  13. 130  INPUT"What disk drive (CR for default drive B)";DRIVE:DRIVE=LEFT$(DRIVE,1):IF DRIVE=""THEN DRIVE ="B"ELSE DRIVE=CHR$(ASC(DRIVE)+32*(DRIVE>"Z"))
  14. 140  PRINT USING"### &### &";NAM;"files so far (";MAX;"max).  ";               'screen file directory & read it
  15. 150  COLOR 0,7:PRINT DRIVE" disk name (CR to end) =>";:COLOR 2:LINE INPUT DISKNAME:IF DISKNAME=""THEN CLS:GOTO 260
  16. 160  DISKNAME=LEFT$(DISKNAME+"    ",4):NDSK=NDSK+1:DSKNAM(NDSK)=DISKNAME:FILES DRIVE+":*.*":SOUND 1111,1:SOUND 2222,1
  17. 170  IY=CSRLIN-2:A="":FOR I=1 TO 8:A=A+CHR$(SCREEN(IY,I)):NEXT:SPACEDSK(NDSK)=VAL(A)
  18. 180  IY=IY-1:IF IY<1 THEN PRINT"Filled full screen--you may have lost some filenames because I'm a bit dumb.":GOTO 140
  19. 190    FOR I=0 TO 54 STEP 18:A="":FOR J=1 TO 12:A=A+CHR$(SCREEN(IY,I+J)):NEXT
  20. 200    IF LEFT$(A,1)=" " THEN 240
  21. 210    NAM=NAM+1:IF NAM>MAX THEN NAM=MAX:BEEP:CLS:PRINT MAX"file limit was reached on your last disk.":GOTO 260
  22. 220    IF INSTR(A,"\")<>0 THEN NAM=NAM-1:GOTO 140
  23. 230    NAM$(NAM)=A+" "+DISKNAME
  24. 240    NEXT:GOTO 180
  25. 250  '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  26. 260  NFILES=NAM:PRINT" Be patient while I sort your";NFILES;"files."  'start sor
  27. 270  NGAP=NFILES\2
  28. 280   WHILE NGAP>0
  29. 290    FOR I=NGAP+1 TO NFILES
  30. 300    J=I-NGAP
  31. 310     WHILE J>0
  32. 320     IF NAM$(J)>NAM$(J+NGAP) THEN SWAP NAM$(J),NAM$(J+NGAP):J=J-NGAP ELSE J=0
  33. 330     WEND
  34. 340    NEXT
  35. 350   NGAP=NGAP\2
  36. 360   WEND
  37. 370  '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  38. 380  CLS:PRINT TAB(19)"Sorted diskette library on date ";DAT 'screen/print the worted diskette library
  39. 390  AL="file         disk   ":PRINT AL;AL;AL;AL
  40. 400  N4=NFILES/4:FOR I=1 TO N4:PRINT NAM$(I);"   ";NAM$(N4+I);"   ";NAM$(2*N4+I);"   ";NAM$(3*N4+I):NEXT
  41. 410  PRINT"__________________________Space remaining in bytes___________________________":FOR I=1 TO NDSK:TOT=TOT+SPACEDSK(I):PRINT USING"\  \#######     ";DSKNAM(I);SPACEDSK(I);:NEXT:PRINT
  42. 420  PRINT NFILES"Files on"NDSK"diskettes.   Total unused space ="TOT;"bytes.":PRINT" Any key rescreens library.  (Ctrl-Prtsc toggles printer)":TOT=0
  43. 430  IF INKEY$<>""THEN 380 ELSE 430  'last statement
  44.